package com.nebula.salary.portal.service;

import com.nebula.salary.common.result.ServerResponse;
import com.nebula.salary.model.dto.PageDto;
import com.nebula.salary.model.pojo.Benefits;
import com.baomidou.mybatisplus.extension.service.IService;
import com.nebula.salary.model.vo.PageResult;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * <p>
 * 节日福利表 服务类
 * </p>
 *
 * @author codex
 * @since 2022-01-24
 */
public interface IBenefitsService extends IService<Benefits> {
    
    /**
     * 根据年份分页查询节日福利
     *
     * @param year    年份
     * @param pageDto 分页查询数据传输类
     * @return 节日福利
     */
    ServerResponse<PageResult> selectBenefitsByPage(Integer year, PageDto pageDto);
    
    /**
     * 分页查询所有节日福利
     *
     * @param pageDto 分页查询数据传输类
     * @return 节日福利
     */
    ServerResponse<PageResult> selectAllByPage(PageDto pageDto);
    
    /**
     * 节日福利总计
     *
     * @return 节日福利总计
     */
    BigDecimal getSum();
    
    /**
     * 节日福利年度统计
     *
     * @param userId 用户ID
     * @return 节日福利年度统计
     */
    List<Map<String, BigDecimal>> getBenefitsYearBar(Long userId);
}
